package co.yixiang.yshop.module.tables.controller.app.table.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;

import javax.validation.constraints.*;

/**
* 餐桌 Base VO，提供给添加、修改、详细的子 VO 使用
* 如果子 VO 存在差异的字段，请不要添加到这里，影响 Swagger 文档生成
*/
@Data
public class AppTableInfoBaseVO {

    @Schema(description = "餐桌编号或名称", required = true, example = "名称")
    @NotNull(message = "餐桌编号或名称不能为空")
    private String tableName;

    @Schema(description = "餐桌类型 (1:普通桌, 2:包厢, 3:吧台)", required = true, example = "1")
    @NotNull(message = "餐桌类型 (1:普通桌, 2:包厢, 3:吧台)不能为空")
    private String tableType;

    @Schema(description = "餐桌最大容纳人数", required = true)
    @NotNull(message = "餐桌最大容纳人数不能为空")
    private Short tableCapacity;

    @Schema(description = "餐桌所在位置描述（如楼层、区域、具体坐标等）")
    private String tableLocation;

    @Schema(description = "状态 (1:空闲, 2:已预订, 3:正在使用)", required = true, example = "1")
    @NotNull(message = "状态 (1:空闲, 2:已预订, 3:正在使用)不能为空")
    private String tableStatus;

    @Schema(description = "当前有效的点餐二维码（或其ID）")
    private String activeQrcode;

    @Schema(description = "关联的预订记录ID（如有预订）", example = "30646")
    private Integer reservationId;

    @Schema(description = "备注信息（如特殊要求、临时关闭原因等）")
    private String tableNotes;

}